<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class CargaDocumentos extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model("documentos_model", "modelo", true);
    }

    public function index() {
        exit("Acceso denegado");
    }

// fin index

    public function avaluos($opc) {
        session_start();
        $parametros = array();
        $this->load->model("visitas_model", "visitas", true);
        $this->load->model("proyectos_model", "proyectos", true);
        $parametros["opc"] = $opc;
        $parametros["proyectos"] = $this->proyectos->consulta();
        $parametros["visitaId"] = $this->visitas->consTodasVisitas();
        $parametros["admin"] = ($_SESSION["Rol"] == "1")?true:false;
        $this->load->view("cargaDocumentos_view", $parametros);
        return;
    }

//fin public function topografias($transaccion){

    public function guardar() {
        if (trim($this->input->post("opc")) == "" || trim($this->input->post("docAvalProNombre")) == "")
            exit("Parametros erroneos con.");
        $opc = $this->input->post("opc");
        $descripcion = $this->input->post("docAvalProNombre");
        $valor = "";
        switch ($opc) {
            case 'pry':
                if (trim($this->input->post("proyectoId")) == "")
                    exit("Parametros incorrectos");
                else
                    $valor = $this->input->post("proyectoId");
                break;
            case 'ava':
                if (trim($this->input->post("avaluoId")) == "")
                    exit("Parametros incorrectos");
                else
                    $valor = $this->input->post("avaluoId");
                break;
        }
        $nombre = "";
        $result = "";
        $fileToDelete = "";
        $mime = "";
        $error = "";
        try {
            if (trim($this->input->post("docAvalProId")) == "" || ($_FILES["docAvalProRuta"]["name"] != "" && trim($this->input->post("docAvalProId")) != "")) {
                if ($_FILES["docAvalProRuta"]["name"] != "") {
                    $nombre_tmp = $_FILES["docAvalProRuta"]["tmp_name"];
                    $ext = strrchr($_FILES["docAvalProRuta"]["name"], '.');
                    //$mime = mime_content_type($nombre_tmp);
                    $nombre = time() . "_" . rand() . $ext;
                    if (!move_uploaded_file($nombre_tmp, RUTADOCUMENTOS . "/$nombre"))
                        die("Error al subir el archivo " . $nombre_tmp . " - " . RUTADOCUMENTOS . "\\" . $nombre);
                }else
                    exit("Error al susbir el archivo por el nombre");
                if (trim($this->input->post("docAvalProId")) != "")
                    $fileToDelete = $this->modelo->obtFile($this->input->post("docAvalProId"));
            }
        } catch (Exception $e) {
            $error = "Se presento un error controlando los archivos, verifique permisos y constantes";
        }
        if (trim($this->input->post("docAvalProId")) == "") { //esta creando
            $result = trim($this->modelo->guardar($nombre, $mime, $valor, $descripcion, $opc));
        } else {
            $result = trim($this->modelo->editar($nombre, $mime, $descripcion, $this->input->post("docAvalProId")));
        }
        if (trim($this->input->post("docAvalProId")) != "" && trim($fileToDelete) !== "" && trim($error) === "") {
            unlink(RUTADOCUMENTOS . "/$fileToDelete");
        }
        $resultado = "<script type='text/javascript'>";
        if ($result != "1" && trim($error) !== "") {
            $resultado .= "alert('Se ha presentado un error en el servidor, intente nuevamente ' + ' $error');";
        }
        $resultado .= "parent.fnTerminaCargas();";
        $resultado .= "</script>";
        echo $resultado;
        return;
    }

//fin public function guardar(){

    public function extraeDatos() {
        $parametros = array();
        if (!$this->input->get("docId")) {
            $parametros["ok"] = "NO";
            $parametros["error"] = "Parametros incorrectos";
        } else {
            $dataSource = $this->modelo->datosDocumento($this->input->get("docId"));
            $dataSource = $dataSource->result();
            $parametros["ok"] = "ok";
            $parametros["nombre"] = $dataSource[0]->docAvalProNombre;
            $parametros["id"] = $dataSource[0]->docAvalProId;
        }
        echo json_encode($parametros);
        return true;
    }

//fin public function extraeDatos(){

    public function elimina() {
        if ($this->input->post("docId")) {
            $this->modelo->elimina($this->input->post("docId"));
            echo 1;
        }
        else
            echo 3;
    } //fin public function elimina(){
    public function descarga($id){
        $fileToDelete = $this->modelo->obtFile($id);
        $this->load->view("descargas_view",array("archivo"=>$fileToDelete));
    }
}

//fin class
?>
